function format(val) { 
    const reg = /\d{1,3}(?=(\d{3})+$)/g //要学会理解正则表达式，这里是从后往前取三位
    return `${val}`.replace(reg,'$&,')
}
function wrapperNumber(object,key) { //输出常规数字
    return object && object[key] ? `${format(object[key])}`: '0.00'
    // return this.reportData && this.reportData.salesToday  上面是仿照这样写的
}
function wrapperOriginalNumber(object,key){ //返回原生数字,就是纯数字，不是字符串
    return object && object[key] ? object[key] : 0
} 
function wrapperPercentage(object,key) { //带百分号输出
    return object && object[key] ? `${object[key]}%` : '0%'
}
function wrapperMoney(object,key) { 
    return object && object[key] ? `￥ ${format(object[key])}` : '￥ 0.00'
}
function wrapperArray(object,key) { 
    return object && object[key] ? object[key] : []
}
function wrapperObject(object,key) { //返回对象的关键字段
    if(object && key.indexOf('.') >= 0) { 
        const keys = key.split('.')
        keys.forEach(key => { 
            object = object[key]
        })
        return object
    } else { 
        return object && object[key] ? object[key] : {}
    }
}
export default { 
    computed: { 
        reportData() { //获取数据
            return this.getReportData() 
        },
        salesToday() { //累计销售额 
            // return this.reportData && this.reportData.salesToday 
            return wrapperMoney(this.reportData,'salesToday')
        },
        salesGrowthLastDay() { //日同比增长
            // return this.reportData && this.reportData.salesGrowthLastDay 
            return wrapperPercentage(this.reportData,'salesGrowthLastDay')
        },
        salesGrowthLastMonth() { //月同比增长
            // return this.reportData && this.reportData.salesGrowthLastMonth 
            return wrapperPercentage(this.reportData,'salesGrowthLastMonth')
        },
        salesLastDay() { //昨日销售额
            // return this.reportData && this.reportData.salesLastDay
            return wrapperMoney(this.reportData,'salesLastDay')
        },
        orderToday() { //累计订单量
            return wrapperNumber(this.reportData,'orderToday')
        },
        orderLastDay() { //累计订单量
            return wrapperNumber(this.reportData,'orderLastDay')
        },
        orderTrend() { //订单量趋势
            return wrapperArray(this.reportData,'orderTrend')
        },
        orderUser() { //累计交易用户量
            return wrapperNumber(this.reportData,'orderUser') 
        },
        orderUserTrend() { // 交易用户数趋势
            return wrapperArray(this.reportData,'orderUserTrend')
        },
        orderUserTrendAxis() { //交易用户数趋势x轴
            return wrapperArray(this.reportData,'orderUserTrendAxis')
        },
        returnRate() { //退货率
            return wrapperPercentage(this.reportData,'returnRate') 
        },
        userToday() {//累计用户数 
            return wrapperNumber(this.reportData,'userToday')
        },
        userTodayNumber() {//累计用户数 
            return wrapperOriginalNumber(this.reportData,'userTodayNumber')
        },
        userLastMonth() {//上月用户数 
            return wrapperOriginalNumber(this.reportData,'userLastMonth')
        },
        userGrowthLastDay() { //日同比
            return wrapperPercentage(this.reportData,'userGrowthLastDay')  
        },
        userGrowthLastMonth() { //月同比
            return wrapperPercentage(this.reportData,'userGrowthLastMonth')  
        },
        userGrowth() { //用户同比
            return wrapperOriginalNumber(this.reportData,'userGrowth')  
        },
        orderFullYear() { //年订单量
            return wrapperArray(this.reportData,'orderFullYear')
        },
        orderFullYearAxis() { //年订单量x轴
            return wrapperArray(this.reportData,'orderFullYearAxis')
        },
        orderRank() { //订单量排行
            return wrapperArray(this.reportData,'orderRank')
        },
        userFullYear() { //年用户量
            return wrapperArray(this.reportData,'userFullYear')
        },
        userFullYearAxis() { //年用户量x轴
            return wrapperArray(this.reportData,'userFullYearAxis')
        },
        userRank() { //年用户量排行
            return wrapperArray(this.reportData,'userRank')
        },
        wordCloud() { //关键词搜索
            return this.getWordCloud()
        },
        category1() { //商品分类数据
            return wrapperObject(this.reportData,'category1')
        },
        category2() { //商品数据
            return wrapperObject(this.reportData,'category2')
        },
        mapData() { 
            return this.getMapData()
        }
    },
    inject: ['getReportData','getWordCloud','getMapData'], //接收父组件传来的方法数据
    methods: { //把方法混入，给其它组件调用
        format(val) { //数字带逗号输出
            return format(val)
        }
    }
}